package org.patterns.behavior.command.calculator;


public class Client {
	public static void main(String[] args) {
		CalculatorForm form = new CalculatorForm();
		AbstractCommand command = new AddCommand();
		form.setCommand(command); //向发送者注入命令对象

		form.compute(10);
		form.compute(5);
		form.compute(12);
		form.compute(8);
		form.compute(15);

		System.out.println("********************");
		form.undo();   // 撤销上一次操作
		form.redo();   // 恢复执行上一次撤销的操作
		form.undo();   // 再次撤销上一次操作
		form.undo();   // 第三次撤销上一次操作
		System.out.println("********************");
		form.redo();   // 恢复执行上一次撤销的操作
		form.undo();   // 撤销当前操作
		form.redo();   // 恢复执行上一次撤销的操作
	}
}
